// 清理商品价格数据的脚本
const { PrismaClient } = require('@prisma/client');
const prisma = new PrismaClient();

async function cleanPriceData() {
  try {
    console.log('开始清理商品价格数据...');
    
    // 1. 查询所有价格记录
    const allPrices = await prisma.productPrice.findMany();
    console.log(`从数据库获取到 ${allPrices.length} 条价格记录`);
    
    // 2. 找出重复的记录
    const priceMap = new Map();
    const duplicates = [];
    const uniquePrices = [];
    
    allPrices.forEach(price => {
      const key = `${price.productId}-${price.channelId}`;
      
      if (!priceMap.has(key)) {
        // 第一次出现，记录为唯一价格
        priceMap.set(key, price);
        uniquePrices.push(price);
      } else {
        // 已经存在，记录为重复价格
        duplicates.push(price);
      }
    });
    
    console.log(`发现 ${duplicates.length} 条重复价格记录`);
    
    // 3. 删除重复记录
    if (duplicates.length > 0) {
      console.log('开始删除重复记录...');
      
      for (const duplicate of duplicates) {
        await prisma.productPrice.delete({
          where: {
            id: duplicate.id
          }
        });
        console.log(`已删除重复价格记录: ID=${duplicate.id}, 商品ID=${duplicate.productId}, 渠道ID=${duplicate.channelId}, 价格=${duplicate.price}`);
      }
      
      console.log(`已成功删除 ${duplicates.length} 条重复价格记录`);
    }
    
    // 4. 检查世涛黑啤的价格设置
    const shitaoProduct = await prisma.product.findFirst({
      where: {
        name: '世涛黑啤'
      }
    });
    
    if (shitaoProduct) {
      console.log(`找到世涛黑啤，ID=${shitaoProduct.id}`);
      
      // 查询世涛黑啤的所有渠道价格
      const shitaoPrices = await prisma.productPrice.findMany({
        where: {
          productId: shitaoProduct.id
        }
      });
      
      console.log('世涛黑啤的渠道价格设置:');
      for (const price of shitaoPrices) {
        const channel = await prisma.channel.findUnique({
          where: { id: price.channelId }
        });
        
        console.log(`- 渠道: ${channel?.name || '未知'} (ID=${price.channelId}), 价格: ${price.price}`);
      }
    }
    
    console.log('价格数据清理完成');
  } catch (error) {
    console.error('清理价格数据出错:', error);
  } finally {
    await prisma.$disconnect();
  }
}

// 执行清理
cleanPriceData(); 